package com.tan.unsynch.one;


public class UnsynchBankTest {
    public static final int NACCOUNTS = 100;
    public static final double INITIAL_BALANCE = 1000;
    public static final double MAX_AMOUNT = 1000;
    public static final int DELAY = 10;

    public static void main(String[] args) {
        Bank bank = new Bank(NACCOUNTS,INITIAL_BALANCE);
        for (int i=0;i<NACCOUNTS;i++){
            int fromAccount =i;
            Runnable r =()->{
                try {
                    while (true) {
                        int toAccount = (int) (bank.size()*Math.random());
                        double amount = MAX_AMOUNT*Math.random();
                        bank.transfer(fromAccount,toAccount,amount);
                        Thread.sleep((int)(DELAY*Math.random()));
                    }
                } catch (InterruptedException e) {

                }
            };
            //创建一个线程对象
            Thread t =new Thread(r);
            //启动线程
            t.start();
        }
    }
}
